#ifndef _CkCsp_H
#define _CkCsp_H
#include "Chilkat_C.h"

HCkCsp CkCsp_Create(void);
void CkCsp_Dispose(HCkCsp handle);
void CkCsp_getEncryptAlgorithm(HCkCsp handle, HCkString retval);
long CkCsp_getEncryptAlgorithmID(HCkCsp handle);
long CkCsp_getEncryptNumBits(HCkCsp handle);
void CkCsp_getHashAlgorithm2(HCkCsp handle, HCkString retval);
long CkCsp_getHashAlgorithmID(HCkCsp handle);
long CkCsp_getHashNumBits(HCkCsp handle);
void CkCsp_getKeyContainerName(HCkCsp handle, HCkString retval);
void CkCsp_putKeyContainerName(HCkCsp handle, const char *newVal);
void CkCsp_getLastErrorHtml(HCkCsp handle, HCkString retval);
void CkCsp_getLastErrorText(HCkCsp handle, HCkString retval);
void CkCsp_getLastErrorXml(HCkCsp handle, HCkString retval);
BOOL CkCsp_getMachineKeyset(HCkCsp handle);
void CkCsp_putMachineKeyset(HCkCsp handle, BOOL newVal);
long CkCsp_getNumEncryptAlgorithms(HCkCsp handle);
long CkCsp_getNumHashAlgorithms(HCkCsp handle);
long CkCsp_getNumKeyContainers(HCkCsp handle);
long CkCsp_getNumKeyExchangeAlgorithms(HCkCsp handle);
long CkCsp_getNumSignatureAlgorithms(HCkCsp handle);
void CkCsp_getProviderName(HCkCsp handle, HCkString retval);
void CkCsp_putProviderName(HCkCsp handle, const char *newVal);
long CkCsp_getProviderType(HCkCsp handle);
BOOL CkCsp_getUtf8(HCkCsp handle);
void CkCsp_putUtf8(HCkCsp handle, BOOL newVal);
BOOL CkCsp_GetEncryptionAlgorithm(HCkCsp handle, long index, HCkString name);
long CkCsp_GetEncryptionNumBits(HCkCsp handle, long index);
BOOL CkCsp_GetHashAlgorithm(HCkCsp handle, long index, HCkString name);
long CkCsp_GetHashNumBits(HCkCsp handle, long index);
BOOL CkCsp_GetKeyContainerName(HCkCsp handle, long index, HCkString name);
HCkStringArray CkCsp_GetKeyContainerNames(HCkCsp handle);
BOOL CkCsp_GetKeyExchangeAlgorithm(HCkCsp handle, long index, HCkString name);
long CkCsp_GetKeyExchangeNumBits(HCkCsp handle, long index);
BOOL CkCsp_GetSignatureAlgorithm(HCkCsp handle, long index, HCkString name);
long CkCsp_GetSignatureNumBits(HCkCsp handle, long index);
BOOL CkCsp_HasEncryptAlgorithm(HCkCsp handle, const char *name, long numBits);
BOOL CkCsp_HasHashAlgorithm(HCkCsp handle, const char *name, long numBits);
BOOL CkCsp_SaveLastError(HCkCsp handle, const char *filename);
long CkCsp_SetEncryptAlgorithm(HCkCsp handle, const char *name);
long CkCsp_SetHashAlgorithm(HCkCsp handle, const char *name);
BOOL CkCsp_SetProviderMicrosoftBase(HCkCsp handle);
BOOL CkCsp_SetProviderMicrosoftEnhanced(HCkCsp handle);
BOOL CkCsp_SetProviderMicrosoftRsaAes(HCkCsp handle);
BOOL CkCsp_SetProviderMicrosoftStrong(HCkCsp handle);
const char *CkCsp_encryptAlgorithm(HCkCsp handle);
const char *CkCsp_getEncryptionAlgorithm(HCkCsp handle, long index);
const char *CkCsp_getHashAlgorithmByIndex(HCkCsp handle, long index);
const char *CkCsp_getKeyContainerNameByIndex(HCkCsp handle, long index);
const char *CkCsp_getKeyExchangeAlgorithm(HCkCsp handle, long index);
const char *CkCsp_getSignatureAlgorithm(HCkCsp handle, long index);
const char *CkCsp_hashAlgorithm(HCkCsp handle);
const char *CkCsp_keyContainerName(HCkCsp handle);
const char *CkCsp_lastErrorHtml(HCkCsp handle);
const char *CkCsp_lastErrorText(HCkCsp handle);
const char *CkCsp_lastErrorXml(HCkCsp handle);
const char *CkCsp_providerName(HCkCsp handle);
#endif
